Getting Ready: The Cricinfo System

Understand the Cricinfo problem and learn the questions to simplify this problem further.

Problem definition#

Cricinfo also known as ESPNcricinfo, is one of the leading cricket-related websites in the world. The platform provides a live coverage of cricket matches, along with ball-by-ball commentary. This website has a database including historical matches from the 18th century till the present. This website provides cricket content globally and is followed by millions around the world. Users can find match updates, live cricket scores, match results on this website. This website also provides articles and news about cricket. Moreover, people can search for matches, teams, players, tournaments, etc. In short, this is a website for cricket lovers.

Expectations from the interviewee#

Cricinfo provides multiple functionalities to its users. It is essential to narrow down what components you will include in your Cricinfo design. The section below provides an overview of some of the main expectations that the interviewer will want to hear you discuss in more detail, during the interview.

Live matches#

Coverage of a live match is one of the most important features of a cricket website. The user must be able to see the live matches on the platform. To get a better understanding of live matches, you can ask interviewer questions like this:

  • How is information of the match updated?

  • What is the process for adding commentary?

  • At what intervals is the commentary added?

Statistics#

It is crucial to store the statistics of the matches in the Cricinfo system. Therefore, you can ask the following questions:

  • What kind of stats does the system record?

  • Does the system record the statistics of players and teams?

People#

There are different people involved in cricket matches. Therefore, to get an idea of the type of people in the system, you can ask the following questions:

  • What kind of people does our system need to store the information about, for example, players, coaches, etc?

  • Will the umpire data be stored in the system?

  • Who will input data into the Cricinfo system? What are the actors of the Cricinfo system?

Tournament#

A tournament is a series of matches played between a number of teams. Therefore, the interviewer would expect you to ask the following questions:

  • How does the system keep track of different tournaments?

  • How are the tournament points and rankings stored in the system?

Design approach#

We’ll design Cricinfo using the bottom-up approach. For this purpose, we will follow the steps below:

  • Identify and design the smallest components first, like a ball and run.

  • Use these small components to design bigger components, for example, an over, team, and an umpire.

  • Repeat the steps above until we design the complete Cricinfo platform.

Design pattern #

During an interview, it is always a good practice to discuss the design patterns that a parking lot system falls under. Stating the design patterns gives the interviewer a positive impression and shows that the interviewee is well-versed in the advanced concepts of object-oriented design.

Try to answer the following question. If you are not familiar with design patterns, don’t worry! You can learn about them by asking questions like, “Define design patterns.”

Which design pattern(s) should be used to design the Cricinfo system? Please elaborate on your choice(s).

Please enter the correct design pattern(s)



Let’s explore the requirements for Cricinfo in the next lesson.

Code for the Airline Management System

Requirements for Cricinfo